package cn.ac.registAService.model;

import java.util.Date;
import java.util.Set;

/** 
 * @author  yangzhong  E-mail: zyang@ceode.ac.cn
 * @version 1.0
 * @date    2012-9-28 下午3:38:08 
 * @fuction 资源元数据实体类，基于ISO1139模型
 */

public class MetadataIso
{

	//---------------------------------------------------------------------------
	//---
	//--- 属性
	//---
	//---------------------------------------------------------------------------

	//1、标识信息	Identification Section------------------------------------------------------------------------
	//	分类/节点类型	参考GN的列表值
	private String topicCategory=null;
	//	发布时间date(publicationDate)	格式（YYYY-MM-DDThh:mm:ss）2012-10-11T17:27:20
	private Date publicationDate=new Date();
	//	语言(枚举值：参考GN的列表值）
	private String language=null;
	//	资源名称
	private String title=null;
	//	资源描述	abstract(metadataAbstract)	
	private String metadataAbstract=null;
	//	关键字	keyword(metadataKeyword)	
	private String metadataKeyword=null;
	//	时间范围-开始时间 2012-10-10T15:39:00
	private Date beginPosition=null;
	//	时间范围-结束时间 2012-10-10T15:39:00
	private Date endPosition=null;
	//	空间范围-北纬	参考GN图上选择空间区域
	private double northBoundLatitude;
	//	空间范围-南纬	South bound latitude	
	private double southBoundLatitude;
	//	空间范围-西经	West bound longitude	
	private double westBoundLongitude;
	//	空间范围-东经	East bound latitude	
	private double eastBoundLongitude;
	//数据类型
	private String dataType=null;
	//数据量大小
	private String dataSize=null;
	//数据条目个数
	private String dataNumber=null;
	//传感器
	private String sensor=null;
	//补充信息
	private String supplement=null;
	
	//2、发布信息	Distribution Section（在线资源	Online resource	）------------------------------------------------------------------------	
	//	访问地址/服务访问点	
	private String linkage	=null;
	//	服务类型/服务模型（枚举值：参照GN的列表值和UDDI的列表值）
	private String protocol=null;
	//portal服务地址
	private String portalLinkage=null;
	//服务操作接口
	private Set<String> linkageInterface=null;

	//3、数据质量信息	Data Quality Section------------------------------------------------------------------------		
	//	描述	Statement	statement(quality)
	private String quality=null;
	
	//4、元数据信息	Metadata Section------------------------------------------------------------------------		
	//	标识符UDDI	File identifier		由GN自动生成
	private String fileIdentifier=null;
	//	字符集	Character（utf8）	characterSet	默认utf8，界面显示UTF8
	private final String characterSet="utf8";
	//	修改时间dateStamp(modifyDate)	格式（YYYY-MM-DDThh:mm:ss）2012-10-11T17:27:20
	private Date modifyDate=new Date();
	//	元数据标准名	默认
	private final String metadataStandardName="ISO 19115:2003/19139";
	//	元数据标准版本	Metadata standard version		默认1.0
	private String metadataStandardVersion="1.0";
	
	//资源组织信息
	private User organizor=null;
	
	//---------------------------------------------------------------------------
	//---
	//--- get和set方法
	//---
	//
	
	public String getTopicCategory() {
		return topicCategory;
	}
	public void setTopicCategory(String topicCategory) {
		this.topicCategory = topicCategory;
	}
	public Date getPublicationDate() {
		return publicationDate;
	}
	public void setPublicationDate(Date publicationDate) {
		this.publicationDate = publicationDate;
	}
	public String getLanguage() {
		return language;
	}
	public void setLanguage(String language) {
		this.language = language;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getMetadataAbstract() {
		return metadataAbstract;
	}
	public void setMetadataAbstract(String metadataAbstract) {
		this.metadataAbstract = metadataAbstract;
	}
	public String getMetadataKeyword() {
		return metadataKeyword;
	}
	public void setMetadataKeyword(String metadataKeyword) {
		this.metadataKeyword = metadataKeyword;
	}
	public Date getBeginPosition() {
		return beginPosition;
	}
	public void setBeginPosition(Date beginPosition) {
		this.beginPosition = beginPosition;
	}
	public Date getEndPosition() {
		return endPosition;
	}
	public void setEndPosition(Date endPosition) {
		this.endPosition = endPosition;
	}
	public double getNorthBoundLatitude() {
		return northBoundLatitude;
	}
	public void setNorthBoundLatitude(double northBoundLatitude) {
		this.northBoundLatitude = northBoundLatitude;
	}
	public double getSouthBoundLatitude() {
		return southBoundLatitude;
	}
	public void setSouthBoundLatitude(double southBoundLatitude) {
		this.southBoundLatitude = southBoundLatitude;
	}
	public double getWestBoundLongitude() {
		return westBoundLongitude;
	}
	public void setWestBoundLongitude(double westBoundLongitude) {
		this.westBoundLongitude = westBoundLongitude;
	}
	public double getEastBoundLongitude() {
		return eastBoundLongitude;
	}
	public void setEastBoundLongitude(double eastBoundLongitude) {
		this.eastBoundLongitude = eastBoundLongitude;
	}
	public String getDataType() {
		return dataType;
	}
	public void setDataType(String dataType) {
		this.dataType = dataType;
	}
	public String getDataSize() {
		return dataSize;
	}
	public void setDataSize(String dataSize) {
		this.dataSize = dataSize;
	}
	public String getDataNumber() {
		return dataNumber;
	}
	public void setDataNumber(String dataNumber) {
		this.dataNumber = dataNumber;
	}
	public String getSupplement() {
		return supplement;
	}
	public void setSupplement(String supplement) {
		this.supplement = supplement;
	}
	public String getLinkage() {
		return linkage;
	}
	public void setLinkage(String linkage) {
		this.linkage = linkage;
	}
	public String getProtocol() {
		return protocol;
	}
	public void setProtocol(String protocol) {
		this.protocol = protocol;
	}
	public String getQuality() {
		return quality;
	}
	public void setQuality(String quality) {
		this.quality = quality;
	}
	public String getFileIdentifier() {
		return fileIdentifier;
	}
	public void setFileIdentifier(String fileIdentifier) {
		this.fileIdentifier = fileIdentifier;
	}
	public Date getModifyDate() {
		return modifyDate;
	}
	public void setModifyDate(Date modifyDate) {
		this.modifyDate = modifyDate;
	}
	public String getMetadataStandardVersion() {
		return metadataStandardVersion;
	}
	public void setMetadataStandardVersion(String metadataStandardVersion) {
		this.metadataStandardVersion = metadataStandardVersion;
	}
	public String getCharacterSet() {
		return characterSet;
	}
	public String getMetadataStandardName() {
		return metadataStandardName;
	}
	public User getOrganizor() {
		return organizor;
	}
	public void setOrganizor(User organizor) {
		this.organizor = organizor;
	}
	public String getSensor() {
		return sensor;
	}
	public void setSensor(String sensor) {
		this.sensor = sensor;
	}
	public String getPortalLinkage() {
		return portalLinkage;
	}
	public void setPortalLinkage(String portalLinkage) {
		this.portalLinkage = portalLinkage;
	}
	public Set<String> getLinkageInterface() {
		return linkageInterface;
	}
	public void setLinkageInterface(Set<String> linkageInterface) {
		this.linkageInterface = linkageInterface;
	}
	
	//---------------------------------------------------------------------------
	//---
	//--- 构造方法
	//---
	//
	
	public MetadataIso() 
	{
	}
	
	@Override
	public String toString() {
		return "MetadataIso [topicCategory=" + topicCategory
				+ ", publicationDate=" + publicationDate + ", language="
				+ language + ", title=" + title + ", metadataAbstract="
				+ metadataAbstract + ", metadataKeyword=" + metadataKeyword
				+ ", beginPosition=" + beginPosition + ", endPosition="
				+ endPosition + ", northBoundLatitude=" + northBoundLatitude
				+ ", southBoundLatitude=" + southBoundLatitude
				+ ", westBoundLongitude=" + westBoundLongitude
				+ ", eastBoundLongitude=" + eastBoundLongitude + ", dataType="
				+ dataType + ", dataSize=" + dataSize + ", dataNumber="
				+ dataNumber + ", supplement=" + supplement + ", sensor="
				+ sensor + ", linkage=" + linkage + ", protocol=" + protocol
				+ ", portalLinkage=" + portalLinkage + ", quality=" + quality
				+ ", fileIdentifier=" + fileIdentifier + ", characterSet="
				+ characterSet + ", modifyDate=" + modifyDate
				+ ", metadataStandardName=" + metadataStandardName
				+ ", metadataStandardVersion=" + metadataStandardVersion
				+ ", organizor=" + organizor + "]";
	}	
	
}
